Skip to main content
Version: 1.0.4

Outbound ACH Credit

The 'Outbound ACH Credit' API enables to process the ACH credit transaction initiated by the sender to send funds to the beneficiary bank account

Method: POST

{{URL}}/rpc/paymentv2

Example

Request Parameters
ParameterDescription
method
Mandatory
String
API method that is being called to initiate ACH transaction through ledger service
Constant value – "ledger.ach.transfer"
id
Mandatory
String
Unique ID of API request
Sample value – "1"
params
Mandatory
Object
payload
Mandatory
Object
channel
Mandatory
String
Payment channel through which the transaction is processed
Constant value – "ACH"
transactionType
Mandatory
String
Type of transaction
Constant value – "ACH_OUT"
transactionDateTime
Optional
String
Date and time of transaction (format: "YYYY-MM-DD HH:MM:SS")
Sample value – "2021-01-19 06:20:25"
reference
Mandatory
String
Unique reference ID
Sample value – "REF16170620220966"
reason
Optional
String
Purpose of transaction
Sample value – "Settlement"
transactionAmount
Mandatory
Object
amount
Mandatory
String
Amount of the transaction
Sample value – "900"
currency
Mandatory
String
Currency type
Sample value – "USD"
debtor
Mandatory
Object
userType
Optional
ENUM
Type of debtor
Sample value – "INDIVIDUAL"
identificationType
Optional
String
ID type
Constant value – "SSN"
identification
Optional
String
Identification value
Sample value – "89900200002"
firstName
Mandatory
String
First name
Sample value – "Andy"
middleName
Optional
String
Middle name
Sample value – "Lee"
lastName
Optional
String
Last name
Sample value – "Prescott"
debtorPostalAddress
Mandatory
Object
addressLine1
Optional
String
First line of address
Sample value – "3745SWWanamakerRD"
city
Optional
String
City
Sample value – "Topeka"
state
Optional
String
State
Sample value – "KS"
zipCode
Optional
String
ZIP Code
Sample value – "66610"
debtorContact
Mandatory
Object
primaryEmail
Optional
String
Email
Sample value – "aprescott@demobank.com"
primaryPhone
Optional
String
Phone
Sample value – "7850010001"
debtorAccount
Mandatory
Object
identificationType
Mandatory
String
Type of account ID
Sample value – "ACCOUNT_NUMBER"
identification
Mandatory
String
Debtor account ID
Sample value – "200524894086671"
creditor
Mandatory
Object
userType
Mandatory
ENUM
Type of creditor
Sample value – "INDIVIDUAL"
firstName
Mandatory
String
First name
Sample value – "Andy"
lastName
Optional
String
Last name
Sample value – "Prescott"
creditorPostalAddress
Mandatory
Object
addressLine1
Mandatory
String
First line of address
Sample value – "3745SWWanamakerRD"
city
Optional
String
City
Sample value – "Topeka"
zipCode
Mandatory
String
ZIP Code
Sample value – "66610"
creditorContact
Mandatory
Object
primaryEmail
Mandatory
String
Email
Sample value – "aprescott@demobank.com"
primaryPhone
Mandatory
String
Phone
Sample value – "7850010001"
creditorAccount
Mandatory
Object
identificationType
Mandatory
String
ID type
Sample value – "ACCOUNT_NUMBER"
identificationType2
Optional
ENUM
Account type
Sample value – "SAVINGS"
identification
Mandatory
String
Account ID
Sample value – "6000000000000006"
api
Mandatory
Object
credential

Mandatory
String
Basic (space) [("<Username>:<apiKey>") as Base64 encoded value] to be provided
Sample Value: "Basic bmF2eWEubitlbXBAbmV0eGQuY29tOmY1OWIwY2NlOTU4ZTQ1YTc4MGVhZWIzYWVjOWVjZDAx"
signature

Mandatory
String
Sign the request payload (params.payload) using private key.
Sample Value: "MEQCIAbpxHpdOyBEVlmxPYv7m4Z1OvWJJYw7g7u3GE3T9nmvAiBjKHckSvb1M6O4t7FeWsn2z9Y3dMeYn3HyX/k28ek/Dw=="
apiKey

Mandatory
String
API key is provided at the time of device registration.
Sample Value : "f59b0cce958e45a780eaeb3aec9ecd01"

curl --location --globoff '{{URL}}/rpc/paymentv2' \
--header 'Content-Type: application/json' \
--data-raw '{"method":"ledger.ach.transfer","id":"1","params":{"payload":{"channel":"ACH","transactionType":"ACH_PULL","reference":"R90987895","transactionDateTime":"2021-01-19 06:20:25","reason":"Settlement","transactionAmount":{"amount":"200","currency":"USD"},"debtor":{"userType":"INDIVIDUAL","identification":"89900200002","identificationType":"SSN","firstName":"nashe","middleName":"","lastName":""},"debtorPostalAddress":{"addressType":"HOUSE","addressLine1":"3745 SW anamaker RD","addressLine2":"Suite C","city":"Topeka","state":"KS","zipCode":"66610","countryCode":"840","nationality":"USA"},"debtorContact":{"primaryEmail":"n.sundar@netsys-inc.com","primaryPhone":"7850010001"},"debtorAccount":{"identification":"200000000852262","identificationType":"ACCOUNT_NUMBER","identificationType2":"SAVINGS","institution":{"name":"FINWISE BANK","identification":"011110646","identificationType":"ABA"}},"creditorAccount":{"identification":"200827921990857","identificationType":"ACCOUNT_NUMBER"}},"api":{"signature":"{{Signature}}","keyId":"{{ApplicationKeyId}}","credential":"{{Credential}}","apiKey":"{{ApiKey}}"}}}'

Body


{
"method": "ledger.ach.transfer",
"id": "1",
"params": {
"payload": {
"channel": "ACH",
"transactionType": "ACH_OUT",
"transactionDateTime": "2021-01-19 06:20:25",
"reference": "REF16170620220966",
"reason": "Settlement",
"transactionAmount": {
"amount": "900",
"currency": "USD"
},
"debtor": {
"userType": "INDIVIDUAL",
"identification": "89900200002",
"identificationType": "SSN",
"firstName": "Andy",
"middleName": "Lee",
"lastName": "Prescott"
},
"debtorPostalAddress": {
"addressType": "HOUSE",
"addressLine1": "3745SWWanamakerRD",
"addressLine2": "SuiteC",
"city": "Topeka",
"state": "KS",
"zipCode": "66610",
"countryCode": "840"
},
"debtorContact": {
"primaryEmail": "aprescott@demobank.com",
"primaryPhone": "7850010001"
},
"debtorAccount": {
"identification": "200524894086671",
"identificationType": "ACCOUNT_NUMBER",
"institution": {
"name": "FINWISE BANK",
"identification": "011000015",
"identificationType": "ABA"
}
},
"creditor": {
"userType": "INDIVIDUAL",
"identification": "89900200014",
"identificationType": "SSN",
"firstName": "Andy",
"_middleName": "Lee",
"lastName": "Prescott"
},
"creditorPostalAddress": {
"addressType": "HOUSE",
"addressLine1": "3745SWWanamakerRD",
"addressLine2": "SuiteC",
"city": "Topeka",
"state": "KS",
"zipCode": "66610",
"countryCode": "840"
},
"creditorContact": {
"primaryEmail": "aprescott@demobank.com",
"primaryPhone": "7850010001"
},
"creditorAccount": {
"identification": "6000000000000006",
"identificationType": "ACCOUNT_NUMBER",
"identificationType2": "SAVINGS",
"institution": {
"name": "FINWISE BANK",
"identification": "011002550",
"identificationType": "ABA"
}
}
},
"api": {
"credential": "{{Credential}}",
"signature": "{{signature}}",
"apiKey": "{{ApiKey}}"
}
}
}

Response: 200

Response Parameters
ParameterDescription

id

String

Response ID echoed from the request ID

Sample value – "1"

result

Object

api

Object

type

String

Type of transaction

Constant value – "ACH_OUT_ACK"

reference

String

Unique reference Id of the transaction

Sample value – "REF16170620220966"

dateTime

String

Date and time of the transaction is initiated (format: "YYYY-MM-DD HH:MM:SS")

Sample value – "2023-05-02 16:55:44"

account

Object

accountId

String

Unique account Id of debtor

Sample value – "200524894086671"

balanceCents

Number

Remaining account balance of debtor in cents

Sample value – 27400

status

Enum

Status of the debtor account

Valid values:

  • ACTIVE - Account is currently active and can be used for transactions
  • DORMANT - Account is inactive for a specific period
  • SUSPENDED - Account is Temporarily disabled
  • CLOSED - Account is permanently terminated and can no longer be used

Sample value – "ACTIVE"

transactionNumber

String

Unique transaction number that is assigned for the transaction

Sample value – "QA00000000008002"

transactionStatus

Enum

Status of the transaction

Valid values:

  • COMPLETED
  • PENDING
  • FAILED
  • DECLINED
  • REJECTED

Sample value – "COMPLETED"

transactionAmountCents

Number

Transaction amount in cents

Sample value – 900

originalRequestBase64

String

Base64 encoded data for received xml message

Sample value – "Base64 encoded data for received xml message"

processId

String

Unique process ID assigned to track end to end process of transaction

Sample value – "PL23050200008002"

header

Object

reference

String

Unique reference ID of the transaction

Sample value – "REF16170620220966"

apiKey

String

API key used for user authentication

Sample value – "ApiKey"

signature

String

Signature for request validation

Sample value – "signature"


{
"id": "1",
"result": {
"api": {
"type": "ACH_OUT_ACK",
"reference": "REF16170620220966",
"dateTime": "2023-05-02 16:55:44"
},
"account": {
"accountId": "200524894086671",
"balanceCents": 27400,
"status": "ACTIVE"
},
"transactionNumber": "QA00000000008002",
"transactionStatus": "COMPLETED",
"transactionAmountCents": 900,
"originalRequestBase64": "eyJjaGFubmVsIjoiQUNIIiwidHJhbnNhY3Rpb25UeXBlIjoiQUNIX09VVCIsInByb2R1Y3QiOiJMRURHRVIiLCJwcm9ncmFtIjoiMTAwMDAwMDAwMDAwMDA1IiwidHJhbnNhY3Rpb25EYXRlVGltZSI6IjIwMjEtMDEtMTkgMDY6MjA6MjUiLCJyZWZlcmVuY2UiOiJSRUYxNjE3MDYyMDIyMDk2NiIsInJlYXNvbiI6IlNldHRsZW1lbnQiLCJ0cmFuc2FjdGlvbkFtb3VudCI6eyJhbW91bnQiOiI5MDAiLCJjdXJyZW5jeSI6IlVTRCJ9LCJkZWJ0b3IiOnsidXNlclR5cGUiOiJJTkRJVklEVUFMIiwiaWRlbnRpZmljYXRpb24iOiI4OTkwMDIwMDAwMiIsImlkZW50aWZpY2F0aW9uVHlwZSI6IlNTTiIsImZpcnN0TmFtZSI6IkFuZHkiLCJtaWRkbGVOYW1lIjoiTGVlIiwibGFzdE5hbWUiOiJQcmVzY290dCJ9LCJkZWJ0b3JQb3N0YWxBZGRyZXNzIjp7ImFkZHJlc3NUeXBlIjoiSE9VU0UiLCJhZGRyZXNzTGluZTEiOiIzNzQ1U1dXYW5hbWFrZXJSRCIsImFkZHJlc3NMaW5lMiI6IlN1aXRlQyIsImNpdHkiOiJUb3Bla2EiLCJzdGF0ZSI6IktTIiwiemlwQ29kZSI6IjY2NjEwIiwiY291bnRyeUNvZGUiOiI4NDAifSwiZGVidG9yQ29udGFjdCI6eyJwcmltYXJ5RW1haWwiOiJhcHJlc2NvdHRAZGVtb2JhbmsuY29tIiwicHJpbWFyeVBob25lIjoiNzg1MDAxMDAwMSJ9LCJkZWJ0b3JBY2NvdW50Ijp7ImlkZW50aWZpY2F0aW9uIjoiMjAwNTI0ODk0MDg2NjcxIiwiaWRlbnRpZmljYXRpb25UeXBlIjoiQUNDT1VOVF9OVU1CRVIiLCJpbnN0aXR1dGlvbiI6eyJuYW1lIjoiQ0JXQkFOSyIsImlkZW50aWZpY2F0aW9uIjoiMDExMDAwMDE1IiwiaWRlbnRpZmljYXRpb25UeXBlIjoiQUJBIn19LCJjcmVkaXRvciI6eyJ1c2VyVHlwZSI6IklORElWSURVQUwiLCJpZGVudGlmaWNhdGlvbiI6Ijg5OTAwMjAwMDE0IiwiaWRlbnRpZmljYXRpb25UeXBlIjoiU1NOIiwiZmlyc3ROYW1lIjoiQW5keSIsImxhc3ROYW1lIjoiUHJlc2NvdHQifSwiY3JlZGl0b3JQb3N0YWxBZGRyZXNzIjp7ImFkZHJlc3NUeXBlIjoiSE9VU0UiLCJhZGRyZXNzTGluZTEiOiIzNzQ1U1dXYW5hbWFrZXJSRCIsImFkZHJlc3NMaW5lMiI6IlN1aXRlQyIsImNpdHkiOiJUb3Bla2EiLCJzdGF0ZSI6IktTIiwiemlwQ29kZSI6IjY2NjEwIiwiY291bnRyeUNvZGUiOiI4NDAifSwiY3JlZGl0b3JDb250YWN0Ijp7InByaW1hcnlFbWFpbCI6ImFwcmVzY290dEBkZW1vYmFuay5jb20iLCJwcmltYXJ5UGhvbmUiOiI3ODUwMDEwMDAxIn0sImNyZWRpdG9yQWNjb3VudCI6eyJpZGVudGlmaWNhdGlvbiI6IjYwMDAwMDAwMDAwMDAwMDYiLCJpZGVudGlmaWNhdGlvblR5cGUiOiJBQ0NPVU5UX05VTUJFUiIsImlkZW50aWZpY2F0aW9uVHlwZTIiOiJTQVZJTkdTIiwiaW5zdGl0dXRpb24iOnsibmFtZSI6IkNCV0JBTksiLCJpZGVudGlmaWNhdGlvbiI6IjAxMTAwMjU1MCIsImlkZW50aWZpY2F0aW9uVHlwZSI6IkFCQSJ9fX0=",
"processId": "PL23050200008002"
},
"header": {
"reference": "REF16170620220966",
"apiKey": "{{ApiKey}}",
"signature": "MEYCIQDGEwm53WA37MS2rrD5f+4YckigGnAtbSDUeQhIBw3IMwIhANX5feV6uRKGnSfnyu2KkwZRWcSknghJWldQKdoXl/f3"
}
}

Error Codes

Error Codes
Error CodeError Message
A107DUPLICATE_REFERENCE
A112INVALID_AMOUNT
A113INVALID_CHANNEL
A114CUSTOMER_NOT_FOUND
A116INVALID_API_KEY
A118TRANSACTION_REFERENCE_EMPTY
A122PROGRAM NOT FOUND
A123CREDITOR_ACCOUNT_TYPE_EMPTY
A126TRANSACTION_TYPE_EMPTY
A147TRANSACTION NOT FOUND
A157INVALID ACCOUNT NUMBER
A161DEBTOR ACCOUNT NOT FOUND
A166DEBTOR_ACCOUNT_TYPE_EMPTY
A167DEBTOR_ACCOUNT_ID_EMPTY
A169ACCOUNT NUMBER DOES NOT MATCH WITH API KEY
A172IDENTIFICATIONTYPE2 SHOULD BE EITHER SAVINGS OR CHECKING
A183PAYLOAD EMPTY
A184INVALID ORIGINAL TRANSACTION STATUS
A185TRANSACTION ALREADY REVERSED
A186CREDITOR FIRSTNAME REQUIRED
A187CREDITOR POSTAL ADDRESS ADDRESSLINE1 REQUIRED
A188CREDITOR POSTAL ADDRESS ZIPCODE REQUIRED
A189CREDITOR POSTAL ADDRESS COUNTRYCODE REQUIRED
A190CREDITOR CONTACT EITHER PRIMARYEMAIL OR PRIMARYPHONE REQUIRED
A191DEBTOR FIRSTNAME REQUIRED
A192DEBTOR POSTAL ADDRESS ADDRESSLINE1 REQUIRED
A193DEBTOR POSTAL ADDRESS ZIPCODE REQUIRED
A194DEBTOR POSTAL ADDRESS COUNTRYCODE REQUIRED
A195DEBTOR CONTACT EITHER PRIMARYEMAIL OR PRIMARYPHONE REQUIRED
A196DEBTOR USERTYPE REQUIRED
A197DEBTOR IDENTIFICATION REQUIRED
A198DEBTOR IDENTIFICATIONTYPE REQUIRED
A199CREDITOR USERTYPE REQUIRED
A200CREDITOR IDENTIFICATION REQUIRED
A201CREDITOR IDENTIFICATIONTYPE REQUIRED
A205INVALID_PROGRAM
A206INVALID_PRODUCT
A207PRODUCT_PROGRAM_CHANNEL SETTING NOT FOUND
A208ID EMPTY
A209APIKEY NOT FOUND
1111CREDITOR ACCOUNT NOT FOUND
1113CREDITOR NOT FOUND
1116TRANSACTION AMOUNT NOT FOUND
1117TRANSACTION CURRENCY NOT FOUND
1122CREDITOR ACCOUNT IDENTIFICATION TYPE NOT FOUND
1123CREDITOR ACCOUNT IDENTIFICATION TYPE2 NOT FOUND
1126DEBTOR ACCOUNT IDENTIFICATION TYPE NOT FOUND
1127PRODUCT NOT FOUND
1128PROGRAM NOT FOUND
1129CHANNEL NOT FOUND
1130TRANSACTION TYPE NOT FOUND
1131INVALID API KEY
2053INVALID_ACCOUNT_NUMBER
5019INSUFFICIENT BALANCE
9999INTERNAL ERROR
1001CARD HOLDER ALREADY EXISTS
1002INVALID CARDHOLDER FIRST NAME
1003INVALID CARDHOLDER PHONE NUMBER
1004INVALID CARDHOLDER ADDRESS LINE 1
1005INVALID CARDHOLDER CITY
1006INVALID CARDHOLDER STATE
UNAUTHORIZEDAccess Denied
INVALID_SIGNATUREInvalid Signature
NOT_FOUND_USER_DEVICEUser device not found
BAD_CREDENTIALInvalid Credential